// 全局变量
var check_roleid = -1;
var check_rolename ="";

// 获取指定角色的功能权限
function getFunctionsByRoleId(it,roleid,rolename) {
	//删除当前未选中的背景色
	$("li.sidebar").removeClass("liselect");
	//添加选中背景色
	$(it).parent().parent().addClass('liselect');
	$(".iframeli").show();
	check_roleid = roleid;
	check_rolename = rolename;
	//清除所有选中状态
	$.each($('input[id^="permission_"]:checked'),function(index, item) {
		$(item).prop("checked",false);
	});
	//treegrid
	$("#permission_dg").treegrid({
		url : "permission/list/" + roleid,
		idField:'id',   
		treeField:'functionname',
		columns : [ [ {
			field : 'checked',
			hidden : true,
		}, {
			field : 'id',
			title : 'Id',
			hidden : false
		}, {
			field : 'functionname',
			title : '功能名称',
			formatter : function(value, row, index) {
				return row.checked=="checked"?'<input onclick="checkbox_click(this)" parentid='+row.parentid+' id=permission_'+row.id+' type="checkbox" checked="'+row.checked+'">'+value:'<input onclick="checkbox_click(this)" parentid='+row.parentid+' id=permission_'+row.id+' type="checkbox">'+value;
			}
		}, {
			field : 'funcurl',
			title : '功能url'
		}, {
			field : 'creationtime',
			title : '创建时间',
			formatter : function(value) {
				if (value == null)
					return;
				var date = new Date(value);
				var year = date.getFullYear().toString();
				var month = (date.getMonth() + 1);
				var day = date.getDate().toString();
				return year + "-" + month + "-" + day;
			}
		}, {
			field : 'isstart',
			title : '是否启用',
			align : 'center',
			formatter : function(value, row, index) {
				switch (value) {
				case 0:
					return "停用";
					break;
				case 1:
					return "启用";
					break;
				default:
					return "-";
					break;
				}
			},
			styler : function(value, row, index) {
				if (value == 0) {
					return 'color:red;';
				} else {
					return 'color:green;';
				}
			}
		} ] ],
		toolbar : [ {
			text : '保 存',
			iconCls : 'icon-save',
			handler : function() {
				savePermission();
			}
		}, {
			text : '取 消',
			iconCls : 'icon-cancel',
			handler : function() {
				console.debug('取消。。。');
				//隐藏权限列表
				$('.iframeli').hide();
			}
		} ],
		fitColumns : true,// 自适应宽度
		striped : true,// 列表是否有间隔底色
		resizable : true,// 列尺寸可调节
		loadMsg : '正在努力加载中..',
		rownumbers : true, // 行前显示行号
		cache:false, //禁用缓存
		
		singleSelect : false,

		selectOnCheck : false,

		checkOnSelect : false,
		
        onClickRow:function(row){
        	//取消选中当前行
        	$('#permission_dg').treegrid('unselect',row.id);
        }
	});
}
function checkbox_click(it){
	
	console.info($(it).prop("checked"));
	console.info($(it));
	//id名字格式:permission_1
	permission_id=it.id.substring(it.id.indexOf('_')+1);
	console.info(permission_id);
	console.info($('#permission_dg').treegrid('getParent',permission_id));
	console.info($('#permission_dg').treegrid('getChildren',permission_id));
	
	if($(it).prop("checked")){
		//选中当前
		$('#permission_'+permission_id).prop("checked", true);
		//如果有子节点,选中所有的子节点
		if($('#permission_dg').treegrid('getChildren',permission_id).length>0){
			$.each($('#permission_dg').treegrid('getChildren',permission_id),function(index, item) {
				son_id = $(item).prop("id");
				$('#permission_'+son_id).prop("checked",true);
			});
		}
		//是否有父节点
		if($('#permission_dg').treegrid('getParent',permission_id)!=null){
			$('#permission_'+$(it).attr("parentid")).prop("checked",true);
		}
		//选中当前行
		$('#permission_dg').treegrid('select',permission_id);
		
	}else{
		//取消选中
		$(it).prop("checked",false);
		console.info($('#permission_dg').treegrid('getChildren',permission_id));
		console.info("father: " +$('#permission_dg').treegrid('getParent',permission_id));
		//如果有子节点,实现反选功能
		if($('#permission_dg').treegrid('getChildren',permission_id).length>0){
			$.each($('#permission_dg').treegrid('getChildren',permission_id),function(index, item) {
				son_id = $(item).prop("id");
				$('#permission_'+son_id).prop("checked",false);
			});
		}
		//是否有父节点
		if($('#permission_dg').treegrid('getParent',permission_id)!=null){
			//定义父节点的状态
			var flag = false;
			console.info("parentid: "+$(it).attr("parentid"));
			//遍历子节点，判断每个子节点的选中状态，如果有一个是选中的，就跳出循环，改变flag的值为true
			$.each($('#permission_dg').treegrid('getChildren',$(it).attr("parentid")),function(index, item) {
				son_id = $(item).prop("id");
				if($('#permission_'+son_id).prop("checked")){
					flag=true;
					return false;//相当于break; continue用return ture;
				}
			});
			//设置父节点的状态
			$('#permission_'+$(it).attr("parentid")).prop("checked",flag);
		}
		//取消选中当前行
		$('#permission_dg').treegrid('unselect',permission_id);	
	}
}
function savePermission() {
	$.messager.confirm('确认', '你确定要修改【'+check_rolename+'】的功能权限吗?', function(r){
		if (r){
			//获取当前选中的functionid的字符串,中间用逗号来分隔！！input[id^='permission_']"
			var flist = '';
			$.each($('input[id^="permission_"]:checked'),function(index, item) {
				permission_id=item.id.substring(item.id.indexOf('_')+1);
				flist += permission_id+',';
			});
			
			alert(flist);

			$.ajax({
				type:"post",
				url:"permission/update",
				data:{"flist":flist,"roleid":check_roleid},
				datatype:"text",
				success:function(hcq){
					if(hcq=="success"){
						$.messager.alert('提示',"保存成功",'info');
					}else{
						$.messager.alert('提示',"保存失败",'info');
					}
				}
			})
		}
	});
}
//关闭权限管理选项卡
function closePage() {
	
	console.debug('closepage');
	var curTab = parent.$('#tabs').tabs('getSelected');
	console.debug(curTab);
	var currentTabIndex = parent.$('#tabs').tabs('getTabIndex', curTab);
	parent.$('#tabs').tabs('close', currentTabIndex);
}